import type { VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { SystemUserApi } from '#/api/system/user';
import Dayjs from 'dayjs';
import { handleTree } from '@vben/utils';

import { z } from '#/adapter/form';
import { getDeptList } from '#/api/system/dept';
import { getSimplePostList } from '#/api/system/post';
import { getSimpleRoleList } from '#/api/system/role';
import {
  CommonStatusEnum,
  DICT_TYPE,
  getDictOptions,
  getRangePickerDefaultProps,
} from '#/utils';

/** 新增/修改的表单 */

/** 列表的搜索表单 */
export function useGridFormSchema(): VbenFormSchema[] {
  return [
    {
        fieldName: 'typeCode',
        label: '所有告警类型',
        component: 'Select',
        componentProps: {
          options: [
              { label: '人脸识别', value: 1 },
              { label: '违规操作', value: 2 },
              { label: '其他', value: 3 }
            ],
          placeholder: '请选择状态',
          clearable: true,
        },
    },
    {
      fieldName: 'alarmTime',
      label: '时间',
      component: 'RangePicker',
      componentProps: {
        ...getRangePickerDefaultProps(),
        allowClear: true,
      },
    },

  ];
}

/** 列表的字段 */
export function useGridColumns<T = SystemUserApi.User>(
  onStatusChange?: (
    newStatus: number,
    row: T,
  ) => PromiseLike<boolean | undefined>,
): VxeTableGridOptions['columns'] {
  return [
    {
        field: 'id',
        title: '序号',
      },
      {
          field: 'typeName',
          title: '告警类型',
      },
      {
          field: 'alarmTime',
          title: '发生时间',
          formatter: ({ cellValue }) => {
            return cellValue?Dayjs(cellValue).format('YYYY-MM-DD HH:mm:ss') : '';
          },
      },
      {
          field: 'className',
          title: '涉及人员',
      },
      {
        field: 'installationLocation',
        title: '摄像头位置',
        formatter: ({ row }) => {
            return row?.camera?.installationLocation || '';
        }
     },
     {
        title: '操作',
        width: 180,
        fixed: 'right',
        slots: { default: 'actions' },
      },
    //   {
    //       field: 'typeName',
    //       title: '抓拍描述',
    //   },
    // {
    //   field: 'id',
    //   title: '序号',
    // },
    // {
    //   field: 'username',
    //   title: '告警类型',
    // },
    // {
    //   field: 'nickname',
    //   title: '发生时间 ',
    // },
    // {
    //   field: 'nickname',
    //   title: '涉及人员区域',
    // },
    // {
    //   field: 'nickname',
    //   title: '告警状态',
    // },

  ];
}
